// pages/Member/member_Coupon/member_Cop_Available_details/member_Cop_Available_details.js

//获取应用实例(获取app.js全局变量必须获取应用实例)
const App = getApp()

//条码、二维码生成
const wxbarcode_cop = require("../../../../lib/wxbarcode/index.js")

const wxbarcode_mbr = require("../../../../lib/wxbarcode/index.js")

//网络请求封装
import Request_post from "../../../../request/Request_post"
import Request_get from "../../../../request/Request_get"

//系统设置项目:(请求地址-在封装中已经引入，这里不需要;   api调用的Appid-partner_app_id;   渠道ID-as_appid)
import config from "../../../../config/config"

//引入时间函数
var dateArray = require("../../../../utils/CustomFunction/getDayFirstNowLast.js")
var time = require("../../../../utils/CustomFunction/getNowTime.js")

//引入日期时间：（格式化、反格式化）函数
var formatDate = require("../../../../utils/CustomFunction/dateFormat.js")
var unformatDate = require("../../../../utils/CustomFunction/dateUnFormat.js")

//全局数组：优惠券样式
import wxGloalArray from "../../../../config/GlobalArray.js"

//引入图片缓存方法：
import cacheimg from "../../../../utils/cacheImg"

Page({

	/**
	 * 页面的初始数据
	 */

	data: {

		pageImage: 
    	[ 
			{key: "Default_shopping_image",value: config.imageUrl+"Default_shopping_image.jpg"},
			{key: "Default_exchang_image",value: config.imageUrl+"Default_exchang_image.jpg"},
			{key: "Default_parking_image",value: config.imageUrl+"Default_parking_image.jpg"},
			{key: "close",value: config.imageUrl+"close.png"},
			{key: "UsedCop",value: config.imageUrl+"UsedCop.png"},														// 全部已售罄图片
			{key: "OutdatedCop",value: config.imageUrl+"OutdatedCop.png"},										// 本轮（周期）已售罄图片
    	],
		

		// //默认购物券图片LOGO、Image
		// Default_shopping_image:config.imageUrl+"Default_shopping_image.jpg",
    	// 默认停车券图片LOGO、Image
		// Default_parking_image:config.imageUrl+"Default_parking_image.jpg",
		// //默认兑换券图片LOGO、Image
		// Default_exchang_image:config.imageUrl+"Default_exchang_image.jpg",
		//  //已使用标志
		//  UsedCop:config.imageUrl+"UsedCop.png",
		//  //已过期标志
		//  OutdatedCop:config.imageUrl+"OutdatedCop.png",
		//  //业主标志
		//  ownflg:config.imageUrl+"Ownflg.png",


		// 核销码按钮状态：默认不禁用
		buttonStauts: false,


		//停车券详情——使用说明[数组]
		parking_cop_brief_Array:
		[
			{brief:"本券不可扫码核销使用"},
			{brief:"请在停车缴费的支付页面选择此券，即可抵扣实际应付停车费"},
		],
		//购物券详情——切换二维码显示及隐藏的初始化量
		display_code_cop:false,
		display_code_mbr:true,
		display_text_cop:true,
		display_text_mbr:false,


		// 核销码是否显示（默认不显示）
		BAR_QR_Code_show:false,

	},

	/** 外链图片Url资源，缓存到本地 */
  storeImage:function(){
    var that = this
    let obj = {}
    let pageimgArr = that.data.pageImage
    // 图片外链url：ip:端口 替换成 域名（外链资源不做域名转换了，而是外链资源原始链接必须就是域名url）
    // pageimgArr.forEach(i => {i.value = config.domainName + i.value.split('/').slice(3).join('/')})
    // 调用本地文件缓存方法 mapCacheUrl
    pageimgArr = pageimgArr.map(i => ({
      ...i,imgpath:cacheimg.mapCacheUrl(i.value)
    }))  
    // 数组转换为对象
    pageimgArr.forEach(i => {obj[i.key] = i.imgpath})
    that.setData({pageStoreimg: obj })
    // console.log(that.data.pageStoreimg)
	},
	

	/** 点击复制文字 */
	checkCopy:function(){
		var that = this;
    wx.setClipboardData({
     //准备复制的数据
      data: that.data.copid,
      success: function (res) {
        wx.showToast({
          title: '复制成功',
        });
      }
    });

	},


	displayCode_mbr:function(){
		this.setData({ 
			display_code_cop:true,
			display_code_mbr:false,
			display_text_cop:false,
			display_text_mbr:true,
		})
	},

	
	displayCode_cop:function(){
		this.setData({ 
			display_code_cop:false,
		display_code_mbr:true,
		display_text_cop:true,
		display_text_mbr:false,

		})
	},



	/** 显示核销码( 三种状态，01-正常：显示； 02-已使用：轻提示；03-已过期：轻提示) */
	BAR_QR_Code_show:function(){
		var stsid = this.data.copInfo.stsid
		console.log(stsid)
		if(stsid == '01'){
			this.Generate_code();		// 生成条码、二维码
			this.setData({
				buttonStauts: true,
				BAR_QR_Code_show: true	// 显示核销码弹框
			})
			this.Polling();			// 轮询生成条码、二维码的JS代码
			// if(this.data.runPolling == true){
			// 	this.Polling();			// 轮询生成条码、二维码的JS代码
			// }
		}else if(stsid == '02'){
			wx.showToast({
				title: '本券已使用',		  //提示文字
				duration:2000,				//显示时长
				icon:'none',				//图标，支持"success"、"loading"  "none"
			})
		}else if(stsid == '03'){
			wx.showToast({
				title: '本券已过期',//提示文字
				duration:2000,//显示时长
				icon:'none', //图标，支持"success"、"loading"  "none"
			})
		}
	},

	/** 关闭核销码 */
	BAR_QR_Code_offshow:function(){
		this.setData({
			buttonStauts: false,
			BAR_QR_Code_show: false,
			runPolling: false
		})
		clearInterval(this.timeID)
	},


	/** 生成一维码 && 二维码  */
	Generate_code:function(){
		var that = this
		var CopDynamicCode = wx.getStorageSync('StrMktopt').CopDynamicCode	// 是否显示动态核销码
		var copchnid = that.data.copInfo.copchnid
		that.setData({CopDynamicCode})

		// 生成 优惠券核销码 条码+二维码 (copchnid: 01-商城券; 02-第三方券)
		if((CopDynamicCode == 'y' || CopDynamicCode == 'Y') && copchnid =='01' ){
			// 09-004-获取电子优惠券动态识别码
			Request_get.get(
				config.domainName+"/api_wxmkt_server/mbrcopbsc/getmbrcopdyncde",
				{ copid: that.data.copid },
				function(res){
					if(res != 'undefined' && res.return_no == 1){
						that.setData({ dycopid: res.return_data.dyncde })
						console.log(that.data.dycopid)
						wxbarcode_cop.barcode('barcode_cop',that.data.dycopid ,550, 120);
						wxbarcode_cop.qrcode('qrcode_cop',that.data.dycopid ,400,400);
						that.setData({ runPolling: true})
					}else{
						wx.showToast({
							title: '动态码获取失败',
							showCancel: false,		//是否显示取消按钮
							cancelColor:'skyblue',		//取消文字的颜色
						})
					}
				}
			)
		}else if((CopDynamicCode != 'y' && CopDynamicCode != 'Y') || copchnid =='02'){
			// 静态：copid
			wxbarcode_cop.barcode('barcode_cop',that.data.copid ,550, 120);
			wxbarcode_cop.qrcode('qrcode_cop',that.data.copid ,400,400);
		}

	},

	/** 轮询 (间隔30秒，变化条码、二维码)  */
	Polling:function(){
		var that = this
		var PollingCodeTime = wx.getStorageSync('StrMktopt').PollingCodeTime * 1000
		that.timeID = setInterval(() =>{  // 定义轮询 
			console.log('轮询ing')
			that.Generate_code();
			// if(that.data.runPolling == false){
			// 	clearInterval(that.timeID) 
			// 	console.log('关闭轮询')
			// }
		},PollingCodeTime)   // 每次轮询的间隔时间（单位：毫秒）
		                        
	},

	

	/**
	 * 返回我的优惠券列表
	 */
	mineCopList:function(){
		var that = this
		wx.redirectTo({
			url:"/SubpkgMarketing/pages/Coupon/MineCopList/MineCopList"
			
		})
	},

	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad: function (options) {
		var that = this

		that.setData({
			PollingCodeTime: wx.getStorageSync('StrMktopt').PollingCodeTime * 1000,			// 每次轮询的间隔时间（单位：毫秒）
			CopDynamicCode : wx.getStorageSync('StrMktopt').CopDynamicCode,					// 是否显示动态核销码
			DynamicColorGradient: wx.getStorageSync('StrMktopt').DynamicColorGradient,    // 颜色动态渐变
			ParkingCopUseMode: wx.getStorageSync('StrMktopt').ParkingCopUseMode				// 停车券缴费模式 01-直接跳转停车缴费页面；02-进入券详情 （两种模式均携带停车券参数跳转）
		})
		 
		// 接收参数：  1:srcbllno-规则单号、2:startuseamt-满X元可用的X值、3：copchtid-券类型（购物券、停车券）
		var copid = unescape(options.copid)

		that.setData({ 
			srcbllno:options.srcbllno, 
			startuseamt:options.startuseamt,
			copchtid:options.copchtid,
			echmodid:options.echmodid,
			copid:copid
		})

		/** Api请求：03-001 会员动态识别码查询  **/
		Request_get.get(
			config.domainName+"api_wxmkt_server/mbrbsc/finddynmbrid",
			{},
			function(res){
				if(res){
					that.setData({
						barcode:res.return_data.barcode
					})
				}
			}
		)
		

		// console.log(that.data.copid)
	},

	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady: function () {

	},

	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow: function () {
		var that = this

		// 外链资源图片链接 本地缓存
		if(App.globalData.ResourcesLink_Locstr === 'y'){
			that.storeImage();
		// 外链资源图片链接 直接读取url地址
		}else{
			let pageimgArr = that.data.pageImage
			let object = {}
			pageimgArr.forEach(i => {object[i.key] = i.value}) // 数组转换为对象
			that.setData({pageStoreimg: object })
			// console.log(that.data.pageStoreimg)
		}


		/** Api请求：09-003 会员电子优惠券详情查询  **/
		Request_get.get(
			config.domainName+'api_wxmkt_server/mbrcopbsc/findmbrcop', 
			{copid:that.data.copid},
			function(res){
				// console.log(res)
				if(res != "undefined" && res.return_no == 1){

					if(App.globalData.Erpimage_Locstr ==='y'){
						let array = res.return_data
						//将回调结果中的imgurl地址，转换为域名（原地址为：http://ip:port/xxx 转换为：https://域名/xxx）
						if(array.imgurl){
							array.imgurl = config.domainName + array.imgurl.split('/').slice(3).join('/');
						}
						// 调用本地文件缓存方法 mapCacheUrl
						array.imgpath = cacheimg.mapCacheUrl(array.imgurl)
						that.setData({
							copInfo:array,
							mbrid:App.globalData.mbrid
						}) ;
					}else{
						// 使用res的原始回调（数组对象中增加一个imgpath的属性值，因为html标签中用imgpath做渲染）
						let object = res.return_data
						object.imgpath = res.return_data.imgurl
						that.setData({
							copInfo:object,
							mbrid:App.globalData.mbrid
						})
					}

					const usescpbrf = res.return_data.usescpbrf.split( ',' );
					const cususeinfo = res.return_data.cususeinfo
					that.setData({usescpbrf,cususeinfo})

					that.setData({CopShowClearCode: wx.getStorageSync('StrMktopt').CopShowClearCode})		// 是否显示核销明码
					
					//生成 会员码 条码+二维码 （mbrid + 时间戳）
					wxbarcode_mbr.barcode('barcode_mbr',that.data.barcode ,550, 120);
					wxbarcode_mbr.qrcode('qrcode_mbr',that.data.barcode ,400,400);


					const Obj = that.data.copInfo
					const style = wxGloalArray.copstyle
					for(var n = 0; n < style.length; n++){
						if(
							style[n].copchtid == Obj.copchtid //&&
							// style[n].copchnid == Obj.copchnid &&
							// style[n].copownid == Obj.copownid 
						){
							for(var key in style[n]){
								Obj[key] = style[n][key]
							}
						}
					}
					that.setData({copInfo:Obj})
					// console.log(that.data.copInfo)
				}else{
					that.setData({msg:res.return_msg,})
					wx.redirectTo({
						url:"/SubpkgMarketing/pages/Coupon/GetCopFailed/GetCopFailed?msg="+that.data.msg
					})
				}
					// console.log('我的优惠券详情回调：',that.data.copInfo)

			}
		)

	},

	/** 增值规则显示 */
	extamtCop_show:function(){
		this.setData({
			extamtCop_show: true,
			display_code_cop: true,
			isplay_code_mbr: true,
		})
	},

	
	/** 增值规则显示关闭 */
	extamtCop_offshow:function(){
		this.setData({
			extamtCop_show: false,
			display_code_cop: false,
			isplay_code_mbr: false,
		})
	},

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide: function () {

	},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload: function () {
		// 页面销毁时，终止轮询（X秒自动刷新二维码）
		clearInterval(this.timeID) 

	},

	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	onPullDownRefresh: function () {
 
	},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom: function () {

	},

	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage: function () {

	},

	/** 去缴停车费 */
	PkvfeePay:function(){
		wx.redirectTo({
		  url: '/SubpkgParkingPay/pages/ParkingPublic/NumberPlate/NumberPlate?copid='+this.data.copid,
		})
	}
})